High-Productivity Stream Programming For High-Performance Systems

نویسندگان

  • Rodric Rabbah
  • Bill Thies
  • Michael Gordon
  • Janis Sermulins
  • Saman Amarasinghe
چکیده

Applications that are structured around some notion of a " stream " are increasingly prevalent to common computing practices, and there is evidence that streaming media applications already consume a substantial fraction of the computation cycles on consumer machines [6]. Furthermore, stream processing—of voice and video data—is central to a plethora of embedded systems, including hand-held computers, cell phones, and DSPs. The stream abstraction is also fundamental to high-performance systems such as intelligent software routers, cell phone base stations, and HDTV editing consoles. Despite the prevalence of these applications, there is surprisingly little language and compiler support for practical, large-scale stream programming. Of course, the notion of a stream as a programming abstraction was established decades ago [1], and a number of special-purpose stream languages exist today (see [8] for a review). Many of these languages and representations are elegant and theoretically sound, but they are often too inflexible to support straightforward development of modern stream applications, or their implementations are too inefficient to use in practice. Consequently, most programmers resort to general-purpose languages such as C or C++ to implement stream programs. Yet there are several reasons why general-purpose languages are inadequate for stream programming. Most notably, they do not provide a natural or intuitive representation of streams, thereby reducing readability, robustness, and programmer productivity. Moreover, because the widespread parallelism and regular communication patterns of data streams are left implicit in general-purpose languages, compilers are not stream-conscious and do not perform stream-specific optimizations. As a result, performance-critical loops are often hand-coded in a low-level assembly language and must be re-implemented for each target architecture. This practice is labor-intensive, error-prone, and very costly. The StreamIt language and compiler effort at MIT is geared toward boosting programmer-productivity while con-comitantly delivering high-performance for a wide array of computing targets. The StreamIt language features several novelties that are essential for large scale program development: the language is modular, parameterizable, malleable and architecture independent. In addition, the language exposes the widespread parallelism and communication patterns that are inherent in many streaming programs, and as a result, the compiler can apply aggressive optimizations that are infeasible to perform when using conventional languages. The StreamIt compiler can deliver high performance codes—with speedups ranging up to 4.5×—for a wide array of computing targets, including embedded and desktop uniprocessors (e.g., StrongARM, IA32, and IA64), tiled and multicore architectures (e.g., Raw [11]), or grid computing systems (e.g., a cluster …

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Domain-specific language & support tools for high-level stream parallelism

Stream-based systems are representative of several different application domains including video, networking, audio, graphic processing, etc. Stream parallel programs may run on different kinds of parallel architectures (desktop, servers, cell phones, and supercomputers) and represent significant workloads on our current computing systems. Nevertheless, most of them are still not parallelized. ...

متن کامل

Application of “Sink & Source” and “Stream wise” Methods for Exergy Analysis of Two MED Desalination Systems

Utilization of fossil fuel for supplying of requires energy of desalination systems is common. On the other hand, solar energy is one of the high-grade energies in the world that can be found specifically in hot weather places. Therefore, utilization of solar energy for operation of desalination systems will reduce greenhouse gases and is a good alternative way. Common exergy analysis method (s...

متن کامل

Stream-Oriented FPGA Computing in the Streams-C High Level Language

An important step in popularizing the field-programmable custom computing machine approach is to provide design tools that enhance designer productivity by enabling application development using high-level programming languages, rather than hardware description languages such as VHDL or Verilog. However, such productivity enhancement must not sacrifice the performance benefit of the FCCM implem...

متن کامل

StreamIt: A Language for Streaming Applications

We characterize high-performance streaming applications as a new and distinct domain of programs that is becoming increasingly important. The StreamIt language provides novel high-level representations to improve programmer productivity and program robustness within the streaming domain. At the same time, the StreamIt compiler aims to improve the performance of streaming applications via stream...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005